package com.gm.lib.net;

import com.gm.lib.cache.CacheMode;
import com.gm.lib.data.SettingPreference;
import com.gm.lib.model.ResultModel;
import org.json.JSONObject;

/**
 * Created by cx on 15/4/23.
 */
public abstract class AbsGMRequest {


    /**
     * 缓存用到的key
     */
    private String key;

    /**
     * @return REST 的api
     */
    public abstract String getUrl();

    /**
     * @return 发送给服务器的json字段
     */
    public JSONObject getJsonObject() {
        return null;
    }


    public abstract ReqParams getRequestParams();

    /**
     * @return 被解析的model类，默认是基类ResultModel
     */
    public Class getJsonCls() {
        return ResultModel.class;
    }


    /**
     * @return 请求是否有缓存，默认是false
     */
    public CacheMode getCacheMode() {
        return CacheMode.NO_CACHE;
    }

    /**
     * 默认的URL。 分test 和 release 两个
     */
    public static String BaseUrl = SettingPreference.getInstance().getBaseUrl();


    public String getKey() {
        return key;
    }

    public void setKey(String _key) {
        this.key = _key;
    }


}
